Skip to content

Comments

feat : 지명 검색결과 없는 경우 추가#25

Merged
starshape7 merged 2 commits intodevelopfrom
feat/#3-studyscreen구현
Jan 14, 2026

Hidden character warning

The head ref may contain hidden characters: "feat/#3-studyscreen\uad6c\ud604"
Merged

feat : 지명 검색결과 없는 경우 추가#25
starshape7 merged 2 commits intodevelopfrom
feat/#3-studyscreen구현

Conversation

@starshape7
Copy link
Collaborator

@starshape7 starshape7 commented Jan 13, 2026

Related issue 🛠

Work Description 📝

  • 지명 검색결과 없는 경우 추가

Screenshot 📸

Uncompleted Tasks 😅

  • Task1

PR Point 📌

트러블 슈팅 💥

Summary by CodeRabbit

릴리스 노트

  • 개선 사항
    • 위치 검색 결과 화면의 레이아웃 및 간격을 개선했습니다.
    • 검색 결과 영역에 흰색 배경과 하단 여백을 적용해 가독성을 높였습니다.
    • 검색 결과가 없을 때 중앙에 명확한 "검색 결과가 없습니다." 메시지를 표시합니다.
    • 이미 선택된 항목은 재선택되지 않도록 클릭 동작을 조정해 상호작용을 개선했습니다.

✏️ Tip: You can customize this high-level summary in your review settings.

@coderabbitai
Copy link

coderabbitai bot commented Jan 13, 2026

Walkthrough

LocationBottomSheet의 결과 영역이 전체 너비 Box로 감싸져 레이아웃(weight, padding, 배경)이 변경되고, 결과가 있을 때는 LazyColumn으로 항목 리스트를 렌더링하며, 결과가 없고 쿼리가 비어있지 않으면 중앙에 "검색 결과가 없습니다." 메시지를 표시하도록 조건부 렌더링 흐름이 재구성되었습니다.

Changes

Cohort / File(s) Summary
LocationBottomSheet UI 구조 변경
core/designsystem/src/main/java/com/umcspot/spot/designsystem/component/bottomsheet/LocationBottomSheet.kt
결과 영역을 전체 너비의 Box로 래핑(가중치, 하단 패딩, 흰색 배경). 결과 존재 시 LazyColumn으로 리스트와 구분선 렌더링, 항목 클릭은 이미 선택된 경우 제한. 결과 없음인 경우 쿼리 비어있지 않으면 중앙 메시지 표시. 조건부 렌더링 흐름 통합 (+58/-50).

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Poem

🐰 Box 안에 모여든 결과들 반짝여요,
패딩 따라 춤추고 배경 위에 내려앉죠,
클릭은 조심스레, 이미 선택된 친구는 쉬게,
비어도 메시지는 다정히 손을 흔들어요,
작은 레이아웃 변화에 마음이 톡! ✨

🚥 Pre-merge checks | ✅ 2 | ❌ 1
❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (2 passed)
Check name Status Explanation
Title check ✅ Passed PR 제목이 주요 변경사항을 명확하게 설명하고 있으며, 검색 결과 없음 상황 처리 추가라는 핵심 변경사항을 잘 요약함.
Description check ✅ Passed PR 설명이 필수 섹션들을 포함하고 있으나, PR Point와 트러블 슈팅 섹션이 비어있고 스크린샷도 누락되어 있음.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
  • 📝 Generate docstrings

🧹 Recent nitpick comments
core/designsystem/src/main/java/com/umcspot/spot/designsystem/component/bottomsheet/LocationBottomSheet.kt (1)

307-316: 이미 선택된 항목의 클릭 동작이 혼란스러울 수 있습니다.

isAlreadySelectedtrue일 때 enabledtrue이지만, onClick에서는 아무 동작도 하지 않습니다. 사용자 입장에서 클릭 가능해 보이는 항목을 클릭해도 반응이 없어 혼란스러울 수 있습니다.

의도적으로 칩을 통해서만 선택 해제하도록 설계한 것이라면, 이미 선택된 항목은 시각적으로 비활성화하거나 선택됨 상태를 표시하는 것이 좋겠습니다.

♻️ 선택된 항목 비활성화 또는 시각적 표시 제안
 modifier = Modifier
     .fillMaxWidth()
     .clickable(
-        enabled = !isMaxSelected || isAlreadySelected,
+        enabled = !isMaxSelected && !isAlreadySelected,
         onClick = {
             if (!isAlreadySelected) {
                 onAddSelected(row)
             }
         }
     )

또는 이미 선택된 항목에 체크 아이콘을 추가하여 선택 상태를 명확히 표시할 수 있습니다.

📜 Recent review details

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between c12120f and 859a7cb.

📒 Files selected for processing (1)
  • core/designsystem/src/main/java/com/umcspot/spot/designsystem/component/bottomsheet/LocationBottomSheet.kt
🔇 Additional comments (2)
core/designsystem/src/main/java/com/umcspot/spot/designsystem/component/bottomsheet/LocationBottomSheet.kt (2)

271-277: 이전 리뷰에서 지적된 중복 패딩 문제가 해결되었습니다.

navBarPadding이 이제 외부 Box에만 적용되고 LazyColumn에서는 제거되어 올바르게 수정되었습니다.


325-334: 검색 결과 없음 상태 처리가 잘 구현되었습니다.

PR 목표에 따라 검색 결과가 없는 경우를 적절히 처리하고 있습니다. query.isNotBlank() 조건으로 사용자가 실제로 검색을 수행했을 때만 메시지를 표시하는 것이 올바른 접근입니다.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Fix all issues with AI agents
In
@core/designsystem/src/main/java/com/umcspot/spot/designsystem/component/bottomsheet/LocationBottomSheet.kt:
- Around line 271-286: The bottom navigation padding navBarPadding is applied
twice (to the outer Box and again to the LazyColumn), causing excess bottom
spacing; remove the duplicate padding from the LazyColumn by deleting the
.padding(bottom = navBarPadding) call in the LazyColumn modifier and rely on the
outer Box's .padding(bottom = navBarPadding) to provide the correct inset so
results and selection logic (selected, results) render with the intended bottom
spacing.
🧹 Nitpick comments (2)
core/designsystem/src/main/java/com/umcspot/spot/designsystem/component/bottomsheet/LocationBottomSheet.kt (2)

278-287: 상단 HorizontalDivider가 가려질 수 있습니다.

Box 내에서 HorizontalDividerLazyColumn이 형제 요소로 배치되어 있습니다. Box는 자식을 겹쳐서 렌더링하므로, 흰색 배경을 가진 LazyColumn이 상단 구분선을 덮을 수 있습니다.

Column으로 감싸거나 구분선을 LazyColumn 내부로 이동하는 것을 고려해 주세요.

♻️ Column 사용 예시
 Box(
     modifier = Modifier
         .fillMaxWidth()
         .weight(1f)
         .padding(bottom = navBarPadding)
         .background(SpotTheme.colors.white)
 ) {
     if (results.isNotEmpty()) {
         val isMaxSelected = selected.size >= 10
 
-        HorizontalDivider(thickness = 0.5.dp, color = SpotTheme.colors.G200)
-        LazyColumn(
-            modifier = Modifier
-                .fillMaxWidth()
-                .background(SpotTheme.colors.white),
-        ) {
+        Column {
+            HorizontalDivider(thickness = 0.5.dp, color = SpotTheme.colors.G200)
+            LazyColumn(
+                modifier = Modifier
+                    .fillMaxWidth()
+                    .weight(1f)
+                    .background(SpotTheme.colors.white),
+            ) {

308-317: 이미 선택된 항목 클릭 시 동작 확인 필요.

이미 선택된 항목(isAlreadySelected = true)의 경우 클릭은 활성화되어 있지만(enabled = true), 실제로 아무 동작도 수행되지 않습니다. 사용자가 클릭해도 피드백이 없어 혼란스러울 수 있습니다.

의도된 동작이라면 enabled = !isMaxSelected && !isAlreadySelected로 변경하여 비활성화 처리하거나, 클릭 시 선택 해제(onRemoveSelected) 동작을 추가하는 것을 고려해 주세요.

📜 Review details

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 1428561 and c12120f.

📒 Files selected for processing (1)
  • core/designsystem/src/main/java/com/umcspot/spot/designsystem/component/bottomsheet/LocationBottomSheet.kt
🔇 Additional comments (1)
core/designsystem/src/main/java/com/umcspot/spot/designsystem/component/bottomsheet/LocationBottomSheet.kt (1)

326-335: 검색 결과 없음 처리가 잘 구현되었습니다.

query.isNotBlank() 조건을 통해 실제 검색이 수행된 경우에만 메시지를 표시하고, 초기 상태에서는 빈 화면을 유지합니다. PR 목표에 부합하는 적절한 구현입니다.

@starshape7 starshape7 merged commit 3c99233 into develop Jan 14, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant